#pragma once
#include "stdafx.h"
#include "GameModuleDependence.h"
#include "ActorMultiIndexDef.h"



namespace _MODULE_
{
	namespace _GAME_
	{
		
		class ActorManager
		{
		public:
			
			ActorManager(void);
			~ActorManager(void);
			void AddActor(_P_GAME::Actor* ptrActor);
			void RemoveActor(_P_GAME::Actor* ptrActor);

			const _P_GAME::Actor* FindActorByUniqName(const _FO_UTIL::Name& nameUniq);

			iCommonActorIterate* GetActorGroupByType(const _FO_UTIL::Name& nameType);
			iCommonActorIterate* GetActorGroupByTag(const _FO_UTIL::Name& nameTag);
			iCommonActorIterate* GetActorGroup();
			
		private:


			Actor_MISet m_misetActor;
			Actor_MISet_By_Uniq& m_miindexActorByUniq;
			Actor_MISet_By_Type& m_miindexActorByType;
			Actor_MISet_By_Tag& m_miindexActorByTag;
		
		};
	}
}